BINTAP Version 1.0
Written by the Infamous Blood! (l.d.tonks@bra0202.wins.icl.co.uk)
(C)1996 Cheese Freak Software


INTRODUCTION
------------
A while back I came across a shareware multi-platform cross-assembler
called TASM. One of the capabilities of this assembler was to assemble
Z80 code, as used by my beloved Speccy. Unfortunately, the output from
the assembler wasn't in a very usable format and, seeing as I couldn't
find a program to convert it for me, I set out to write a quick program 
which would rectify the problem.

Et voila - BINTAP!


WHAT IS IT?
-----------
BINTAP takes ANY binary or text file from your host computer and turns
it into a .TAP file for loading into a Spectrum emulator. This means
that you can write Z80 code with TASM, assemble it, and then turn it
into a format which you can load straight into the emulator for testing.
It also means you can transfer just about anything to your Speccy,
including text files and graphics! Cor!


HOW TO USE IT
-------------
It's EASY! If you're a DOS user then run BINTAP.EXE and you'll get a
quick overview of how to use it. If you're not a DOS user, the (messy)
source code is included and should compile fine under any OS with a
ANSI-Standard C Compiler (let me know if it doesn't).

BINTAP takes four parameters - none of these are optional!

<bin. filename>
The filename of the binary file you wish to work with.

<.tap filename>
The filename of the .TAP file you wish to create. BINTAP will not
append! If you specify an existing .TAP file it will be OVERWRITTEN!

<speccy filename>
The filename you wish the data to have within the .TAP file (i.e. when
loading the Speccy will print BYTES: XXXXXXX)

<.org address>
The address in Speccy memory where you want the data to load to. Take
care only to specify areas between 16384 and 65536 and make sure that
you don't over-run the end of memory!


HOW TO USE IT WITH THE CROSS-ASSEMBLER
--------------------------------------
As a quick example, here's how to use TASM to assemble the file
LOADER.ASM which comes with this program.

1. Unzip all the TASM files to a directory and copy LOADER.ASM into the
same directory.

2. Type the following command line :
	tasm -80 -c -b loader.asm

3. This should produce a file called LOADER.OBJ. This is the assembled
binary file. Run BINTAP on this file with the following command line :
	bintap loader.obj loader.tap loadcode 60000

4. Start your Spectrum emulator and set up LOADER.TAP to be the current
.TAP file. Then type the following commands :
	CLEAR 59999 <ENTER>
	LOAD "" CODE <ENTER>

5. The assembled code is now in memory and may be executed with :
	RANDOMIZE USR 60000 <ENTER>


In case you didn't realise, this loads a headerless SCREEN$ file into
the screen memory! Truly a machine-code masterpiece...! ;-)


HOW TO USE IT WITH OTHER PROGRAMS
---------------------------------
It is perfectly possible to use BINTAP to make code from OTHER
cross-assemblers usable by the emulator. The only requirement is that
the assembler must be able to produce output as STRAIGHT BINARY DATA,
not one of the other various file formats available. If you get it to work
with any other assemblers I'd be very interested to hear about it!

Of course, it is possible to transfer many other kinds of data with this
program. I'd also be very interested to hear of any other uses you may
have come up with!


WHERE DO I GET TASM FROM?
-------------------------
Look in your local Simtel mirror. In mine, it's here :
ftp://ftp.demon.co.uk/pub/simtel/msdos/crossasm/tasm301.zip

And please remember that TASM is Shareware - that means you should
register it if you like it and use it often. Okay?


LIMITATIONS
-----------
BINTAP only transfers data - it doesn't convert it! Don't run it on a
.Z80 file and expect to make a loadable .TAP file of a game! Don't run
it on a .GIF and expect to be able to LOAD "" SCREEN$ the results! Don't
spend three days typing a BASIC program into a PC text editor then run
BINTAP on it and expect it to load into the Spectrum and run! In
general, if there isn't a program on the Speccy that can INTERPRET THE 
DATA then there's little point transferring it over! BINTAP just ports
the PURE BINARY DATA into a format that can be loaded into the
Spectrum's memory. Just wanted to make that clear.....

There's not much error checking in BINTAP. It probably won't crash your
computer if you make a mess, but it might.....


DISCLAIMER
----------
BINTAP is provided 'as is' as a FREEWARE product. This means that if you
have the program you have the full thing - you don't have to pay me
anything to own it or use it. However, if it trashes your hard drive,
kills your Gran or wipes out a whole civilisation then don't come crying
to me because it's NOT MY FAULT. Use the software at your OWN RISK!

BINTAP may be distributed and copied freely, but ALL files must be
distributed (i.e. no messing about with the .ZIP file!). The following
files should be present :

BINTAP.H	C Source code header file
BINTAP.C	C Source code Main file
BINTAP.EXE	MS-DOS Compiled version of the program
BINTAP.TXT	User Manual
LOADER.ASM	An example piece of Z80 source code

The only exception to the free distribution of this software is if you
are trying to make money out of it. NO MONEY must be charged for this
software - not even the price of a disk. It's just not worth it for so
small a program. And if you want to put this program on one of your
dodgy pirate CDs then YOU CAN'T!

Also, UNDER NO CIRCUMSTANCES SHOULD THIS PROGRAM BE PACKAGED AND
DISTRIBUTED ALONG WITH TASM! Got that? Good.


EPILOGUE
--------
Well, that just about rounds it up from me. If you find any bugs or you
find it useful or you just want to talk Speccy with me then drop me an
email at the address below.

Until next time, Spec-chums.....


Blood.

*============[ l.d.tonks@bra0202.wins.icl.co.uk ]=============* 
|                    The Infamous BLOOD!                      | 
|         The Speccy's not dead - it was just resting!        | 
| Who needs 500Mb of rendered intro when Jetpac fits in 16k?! | 
*===========[ http://spodbox.linux.org.uk/~blood/ ]===========* 


RANDOMIZE USR 0
